.\" LICENSE
.\"
.\" This software program is released under the terms of a license agreement between you ('Licensee') and Intel. Do not use or load this software or any associated materials (collectively, the 'Software') until you have carefully read the full terms and conditions of the LICENSE located in this software package. By loading or using the Software, you agree to the terms of this Agreement. If you do not agree with the terms of this Agreement, do not install or use the Software.
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
.TH e1000 1 "June 28, 2005"


.SH NAME
e1000 \-This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters.


.SH SYNOPSIS
.PD 0.4v
modprobe e1000 [<option>=<VAL1>,<VAL2>,...]
.br
insmod e1000 [<option>=<VAL1>,<VAL2>,...]
.PD 1v
.LP


.SH DESCRIPTION
This driver is intended for \fB2.4.x\fR and \fB2.6.x\fR kernels. This driver includes support for Itanium(R)2-based systems.
.LP
This driver is only supported as a loadable module at this time. Intel is not supplying patches against the kernel source to allow for static linking of the driver. For questions related to hardware requirements, refer to the documentation supplied with your Intel PRO/1000 adapter. All hardware requirements listed apply to use with Linux.
.LP


.SH OPTIONS
The following optional parameters are used by entering them on the command line with the modprobe or insmod command. 
For example, with two PRO/1000 PCI adapters, entering:
.IP
.B modprobe e1000 TxDescriptors=80,128
.LP
loads the e1000 driver with 80 TX descriptors for the first adapter and 128 TX descriptors for the second adapter.
.PP
.LP
.B AutoNeg
.IP
.B Valid Range: 
0x01-0x0F, 0x20-0x2F
.br
.B Default Value: 
0x2F
.IP
bit mask that specifies which speed and duplex settings the board advertises. When AutoNeg is not set to the default, the Speed and Duplex parameters must not be specified. This parameter only applies to adapters using copper connections.
.IP
See the section "Speed and Duplex Configuration" in Readme.
.LP
.B Duplex
.IP
.B Valid Range: 
0-2 (0=auto-negotiate, 1=half, 2=full)
.br
.B Default Value: 
0
.IP
defines the direction in which data is allowed to flow. Can by either one or two-directional. If both Duplex and the link partner are set to auto-negotiate, the board auto-detects the correct duplex. If the link partner is forced (either full or half), Duplex defaults to half-duplex. This parameter only applies to adapters using copper connections.
.IP
See the section "Speed and Duplex Configuration" in Readme.
.LP
.B FlowControl
.IP
.B Valid Range: 
0-3 (0 = none, 1 = Rx only, 2 = Tx only, 3 = Rx and Tx)
.br
.B Default Value: 
Read flow control settings from the EEPROM
.IP
controls the automatic generation(Tx) and response(Rx) to Ethernet PAUSE frames.
.LP
.B InterruptThrottleRate
.IP
.B Valid Range: 
100-100000 (0=off, 1=dynamic)
.IP
.B Default Value: 
8000
.IP
represents the maximum number of interrupts per second the controller generates. InterruptThrottleRate is another setting used in interrupt moderation. Dynamic mode uses a heuristic algorithm to adjust InterruptThrottleRate based on the current traffic load.
.IP
Un-supported Adapters: InterruptThrottleRate is NOT supported by 82542, 82543 or 82544-based adapters.
.IP
NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and RxAbsIntDelay parameters. In other words, minimizing the receive and/or transmit absolute delays does not force the controller to generate more interrupts than what the Interrupt Throttle Rate allows.
.IP
See the section "InterruptThrottleRate" in Readme.
.LP
.B RxDescriptors
.IP
.B Valid Range: 
80-256 for 82542 and 82543-based adapters, 80-4096 for all other supported adapters
.br
.B Default Value: 
256
.IP
number of receive descriptors allocated by the driver. Increasing this value allows the driver to buffer more incoming packets.  Each descriptor is 16 bytes.  A receive buffer is also allocated for each descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending on the MTU setting. The maximum MTU size is 16110.
.IP
NOTE: MTU designates the frame size. It only needs to be set for Jumbo Frames.
.LP
.B RxIntDelay
.IP
.B Valid Range: 
0-65535 (0=off)
.br
.B Default Value: 
0
.IP
delays the generation of receive interrupts in units of 1.024 microseconds. Receive interrupt reduction can improve CPU efficiency if properly tuned for specific network traffic. Increasing this value adds extra latency to frame reception and can end up decreasing the throughput of TCP traffic. If the system is reporting dropped receives, this value may be set too high, causing the driver to run out of available receive descriptors.
.IP
CAUTION: When setting RxIntDelay to a value other than 0, adapters may hang (stop transmitting) under certain network conditions. If this occurs a NETDEV WATCHDOG message is logged in the system event log. In addition, the controller is automatically reset, restoring the network connection. To eliminate the potential for the hang ensure that RxIntDelay is set to zero.
.LP
.B RxAbsIntDelay 
(82540, 82545, and later adapters only)
.IP
.B Valid Range: 
0-65535 (0=off)
.br
.B Default Value: 
128
.IP
limits the delay in which a receive interrupt is generated (in units of 1.024 microseconds). Useful only if RxIntDelay is non-zero, this value ensures that an interrupt is generated after the initial packet is received within the set amount of time.  Proper tuning, along with RxIntDelay, may improve traffic throughput in specific network conditions.
.LP
.B Speed
.IP
.B Valid Settings: 
0, 10, 100, 1000
.br
.B Default Value: 
0 (auto-negotiate at all supported speeds)
.IP
forces the line speed to the specified value in megabits per second (Mbps). If this parameter is not specified or is set to 0 and the link partner is set to auto-negotiate, the board auto-detects the correct speed. Duplex must also be set when Speed is set to either 10 or 100. This parameter only applies to adapters using copper connections.
.IP
See the section "Speed and Duplex Configuration" in Readme.
.LP
.B TxIntDelay
.IP
.B Valid Range: 
0-65535 (0=off)
.br
.B Default Value: 
64
.IP
delays the generation of transmit interrupts in units of 1.024 microseconds.  Transmit interrupt reduction can improve CPU efficiency if properly tuned for specific network traffic. If the system is reporting dropped transmits, this value may be set too high causing the driver to run out of available transmit descriptors.
.LP
.B TxAbsIntDelay 
(82540, 82545, and later adapters only)
.IP
.B Valid Range: 
0-65535 (0=off)
.br
.B Default Value: 
64
.IP
limits the delay in which a transmit interrupt is generated (in units of 1.024 microseconds). Useful only if TxIntDelay is non-zero, this value ensures that an interrupt is generated after the initial packet is sent on the wire within the set amount of time.  Proper tuning, along with TxIntDelay, may improve traffic throughput in specific network conditions.
.LP
.B TxDescriptors
.IP
.B Valid Range: 
80-256 for 82542 and 82543-based adapters, 80-4096 for all other supported adapters
.br
.B Default Value: 
256
.IP
number of transmit descriptors allocated by the driver. Increasing this value allows the driver to queue more transmits. Each descriptor is 16 bytes.
.LP
NOTE: Depending on the available system resources, the request for a higher number of transmit descriptors may be denied.  In this case, use a lower number.
.LP
.B XsumRX
.IP
.B Valid Range: 
0-1
.br
.B Default Value: 
1
.IP
enables IP checksum offload for received packets (both UDP and TCP) to the adapter hardware when set to 1. This parameter is not available on the 82542-based adapter.
.LP


.SH JUMBO FRAMES
.LP
The driver supports Jumbo Frames for all adapters except 82542 and 82573-based adapters.  Jumbo Frames support is enabled by changing the MTU to a value larger than the default of 1500.  Use the ifconfig command to increase the MTU size. For example:
.IP
ifconfig ethx mtu 9000 up
.LP
NOTE: Jumbo Frames are supported at 1000 Mbps only. Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or loss of link.
.LP
Some Intel gigabit adapters that support Jumbo Frames have a frame size limit of 9234 bytes, with a corresponding MTU size limit of 9216 bytes.  The adapters with this limitation are based on the Intel 82571EB and 82572EI controllers, which correspond to these product names: 
.LP
- Intel PRO/1000 PT Dual Port Server Adapter
.LP
- Intel PRO/1000 PF Dual Port Server Adapter
.LP
- Intel PRO/1000 PT Server Adapter 
.LP
- Intel PRO/1000 PT Desktop Adapter 
.LP
- Intel PRO/1000 PF Server Adapter
.LP
NOTE: The Intel PRO/1000 PM Network Connection does not support jumbo frames.


.SH Ethtool
.LP
The driver utilizes the ethtool interface for driver configuration and diagnostics, as well as displaying statistical information.  Ethtool version 1.8.1 or later is required for this functionality.
.LP
The latest release of ethtool can be found from http://sf.net/projects/gkernel.  The driver then must be recompiled in order to take advantage of the latest ethtool features.
.LP
Ethtool 1.6 only supports a limited set of ethtool options. Support for a more complete ethtool feature set can be enabled by upgrading ethtool to ethtool-1.8.1. 

.SH NAPI
.LP
NAPI (Rx polling mode) is supported in the e1000 driver. NAPI is enabled or disabled based on the configuration of the kernel. To override the default, use the following compile-time flags. 
.IP
To enable NAPI, compile the driver module, passing in a configuration option:
.IP
make CFLAGS_EXTRA=-DE1000_NAPI install
.IP
To disable NAPI, compile the driver module, passing in a configuration option:
.IP
make CFLAGS_EXTRA=-DE1000_NO_NAPI install
.LP
See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI.


.SH SUPPORT
.LP
For additional information, including supported adapters, building, and installation, see the Readme file included with the driver.
.LP
For general information, go to the Intel support website at:
.IP
.B http://support.intel.com
.LP
